package com.ruoyi.experiment.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 实验管理对象 experimental_management
 *
 * @author ruoyi
 * @date 2024-05-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Experiment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 实验id */
    private Long experimentId;

    /** 实验类型id */
    @Excel(name = "实验类型id")
    private Long typeId;

    private String type;

    /** 样品id */
    @Excel(name = "样品id")
    private Long sampleId;


    private String sampleName;

    /** 实验名称 */
    @Excel(name = "实验名称")
    private String experimentName;

    /** 数量 */
    @Excel(name = "数量")
    private Long experimentNumber;

    /** 单价 */
    @Excel(name = "单价")
    private Long experimentPrice;

    /** 岗位id */
    @Excel(name = "岗位id")
    private Long jobId;
    //展示字段：岗位名
    private String job;

    /** 岗位分发价格 */
    @Excel(name = "岗位分发价格")
    private Long jobPrice;

    /** 实验开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实验开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date experimentDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实验要求完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date experimentRequiredDate;
    /** 实验结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //查询用，实验开始时间的右区间
    private Date experimentEndDate;

    @Excel(name = "实验操作人")
    private String experimentPerson;

    /** 实验备注 */
    @Excel(name = "实验备注")
    private String experimentRemark;

    /** 实验状态：1创建实验，2待分发，3分配岗位，4送至项目管理员，5送至财务 */
    @Excel(name = "实验状态：1创建实验，2待分发，3分配岗位，4送至项目管理员，5送至财务")
    private Integer expermentType;

    private Integer orderNum;

    private String topReason;

    private List<Long> sampleIds;

    private Integer confirmStatus;

    private Long jobManagerId;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("experimentId", getExperimentId())
                .append("typeId", getTypeId())
                .append("sampleId", getSampleId())
                .append("experimentName", getExperimentName())
                .append("experimentNumber", getExperimentNumber())
                .append("experimentPrice", getExperimentPrice())
                .append("jobId", getJobId())
                .append("jobPrice", getJobPrice())
                .append("experimentDate", getExperimentDate())
                .append("experimentRemark", getExperimentRemark())
                .append("expermentType", getExpermentType())
                .append("experimentEndDate",getExperimentEndDate())
                .toString();
    }
}

